Method for software program synchronization

ABSTRACT

A method, devices, and a computer program for synchronizing one or more software programs from a first device (D 100 ) to a second device (D 200 ) are disclosed. The method comprises the steps of creating ( 100 ) an application profile indicating one or more software programs on the first device (ID 100 ) and indicating one or more software program providing nodes (SN  100 ,SN 200 ) from which said one or more software programs are obtainable, providing ( 200 ) the application profile to a synchronization manager (SM  100 ), identifying ( 300 ) by the synchronization manager (SM  100 ) the one or more software programs and the one or more software program providing nodes (SN 100 ,SN 200 ) according to the application profile, requesting ( 400 ) by the synchronization manager (SM  100 ) the one or more software program providing nodes (SN  100 ,SN 200 ) to transfer the one or more software programs, and transferring ( 500 ) the one or more software programs from the one or more software program providing nodes (SN  100 ,SN 200 ) to the second device (D 200 ).

FIELD OF THE INVENTION

The present invention relates to computing and communication, inparticular to a method for synchronization of one or more softwareprograms from a first device to a second device.

BACKGROUND OF THE INVENTION

In modern times, users are confronted with more and more devices likespersonal computers, laptop computers, personal digital assistants, smartphones, mobile phones, and other devices capable of operating softwareprograms and processing and communicating data. Synchronization betweendevices is a critical issue to avoid negative user experience andnon-usage of otherwise good device functionalities.

It is known to synchronize non-user specific device capabilities likee.g. the screen size, the computing power, the operational system, theWireless Application Part version etc. by a Wireless Application PartUser Profile Agent (WAP UAP). Furthermore, user data like electroniccalendar entries, address book entries, or emails can be synchronizedbetween devices. For example, calendar entries in an electronic calendaron a personal computer can be synchronized with an electronic calendaron a mobile phone or vice versa. The SyncML Sync Protocol is a protocolthat supports synchronization of user data between a SyncML client and aSyncML server, see SyncML Sync Protocol, version 1.1 (Feb. 15, 2001) atOpen Mobile Alliance (OMA) web pages.

When the user changes from a first to a second device, he is usuallyconfronted with the problem that the software program he is used tooperate on the first device is not present on the second device. Forexample, the user may use an electronic calendar of a first kind on thefirst device but when operating the second device he may only find anelectronic calendar of a second kind with totally different userinterface and operation characteristics. While it may be possible tosynchronize the calendar entries e.g. via SyncML, it is not veryuser-friendly to require the user to adapt to the different userinterface and different operability of the same purpose softwareprograms on the two devices. The problem occurs also, when the user buysa new device where the software programs he is used to operate are notpresent.

The problem is further intensified by the increasing number and varietyof devices a user operates caused e.g. by innovation, very shortdevelopment and time-to-market periods, an increasing number of nichedevices and intensive marketing increasing the demand for new devices.However, with increasing number of devices being replaced in shorter andshorter time intervals, the user feels a strong need for operating thesame software programs on his devices which reduces time and effort fortraining. What is needed is therefore a solution, which provides theuser with software programs that he is used to operate on a first deviceon one or more further devices.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a method, devices,and a computer program, which provide a solution to the aforementionedproblem.

This object is achieved by the method as described in claim 1.Furthermore, the invention is embodied in a synchronization manageraccording to claim 9, devices according to claim 17 and 21, and acomputer program according to claim 23. Advantageous embodiments aredescribed in the further claims.

The invention discloses a method for synchronizing one or more softwareprograms from a first device to a second device. First of all, anapplication profile is created. The application profile indicates one ormore software programs on the first device and further indicates one ormore software program providing nodes from which said one or moresoftware programs can be obtained. The application profile may compriseat least one software program name for indicating the one or moresoftware programs and at least one node address for indicating the oneor more software program providing nodes. It may further comprise atleast one version indicator for indicating at least one version of theone or more software programs and/or a licensing indicator forindicating if a license is required.

The method continues by providing the application profile to asynchronization manager. The one or more software programs and the oneor more software program providing nodes are identified by thesynchronization manager according to the application profile indicatingthe one or more software programs on the first device and the one ormore software program providing nodes from which said one or moresoftware programs can be obtained. For example, the synchronizationmanager may identify the one or more software programs according to theat least one or more software program names comprised in the applicationprofile and the software program providing nodes from which said one ormore software programs are obtainable according to the at least one nodeaddress comprised in the application profile. Furthermore, a version ofa software program may be identified based on a version indicatorcomprised in the application profile.

Furthermore, the synchronization manager requests the one or moresoftware program providing nodes to transfer the one or more softwareprograms. Finally, the one or more software programs are transferredfrom the one or more software program providing nodes to the seconddevice.

The invention provides the user with one or more software programs thathe is used to operate on a first device on a second device by asynchronization based on an application profile and the use of asynchronization manager.

Accordingly, software programs on the first device can be transferredfrom software program providing nodes to the second device in a very,flexible and convenient way such that the user can be automaticallyprovided with these software programs on the second device.User-friendliness, device change acceptance, and operability of multipledevices are thus ensured.

According to a preferred embodiment, for at least a part of the one ormore software programs according to the application profile one or morecorresponding software programs exist. A corresponding software programis a software program that corresponds to a software program asindicated by the application profile. As an example, a software programaccording to the application profile and the corresponding softwareprogram may have the same name but may differ regarding the version. Incase one or more corresponding software programs exists, it can be ofadvantage if the one or more corresponding software programs aretransferred instead of or in addition to said part of the one or moresoftware programs according to the application profile. This transfer ofthe corresponding one or more software programs may be a result of ananalysis of said part of the one or more software programs according tothe application profile and the one or more corresponding softwareprograms, e.g. by comparing version indicators. Thus the transfer of oneor more corresponding software programs provides the user with one ormore software programs that can be operated identically or quite similarto the one or more he is used to operate on his first device but offerthe advantage that they are e.g. of a newer version or are betteradapted to the second device. If both the one or more software programsaccording to the application profile and the one or more correspondingprograms are transferred, the user may be enabled to select the one ormore software programs he would like to use, e.g. by a menu presentingthe transferred software programs for a selection by the user.

According to another preferred embodiment, the application profilecomprises at least one license indicator for indicating and identifyingat least a part of the one or more software programs requiring alicense. The license indicator can comprise a license. When identifiedthat a license is required, a request can be communicated to a licenseauthority for requesting an authorization of the transfer to the seconddevice or said part of the one or more software programs for that thelicense is required from the one or more software program storages wheresaid part of one or more software programs requiring the license areobtainable from. The license authority can e.g. authorize the transferby communicating one or more messages to the one or more softwareprogram providing nodes from which the one or more software programsrequiring the license are obtainable from for instructing these one ormore software program providing nodes to release said one or moresoftware programs for the transfer to the second device. Theauthorization by an license authority provides more control over thesynchronization as a provider of licensed software programs typicallyissues a license for a software program to be used on a single device,i.e. the first device. If the software program is now to be used on asecond device, a license update may be required with or without relatedcharging, e.g. to charge for a license for operation of the transferredone or more software programs on the second device.

The security can be enhanced by introducing at least one authenticationstep for verifying at least one identity of at least one of the firstdevice, the second device, an user of the first device, an user of thesecond device, and at least one of the one or more software programproviding nodes before transferring the one or more software programs tothe second device. The user of the first device and the user of thesecond device are in most cases identical, however, the user of thesecond device can be different from the user of the first device, atleast temporarily. For example if administrator rights are required forthe transfer of the software programs to the second device, the user ofthe first device may request an administrator to perform anauthentication for the transfer of the one or more software programs.After the transfer is completed, the user of the first device and/or theadministrator may operate the transferred one or more software programson the second device. Furthermore, one and the same user of the firstand second device may use one and the same identity or alternativelydifferent identities for the authentication.

A further enhancement comprises the step of a selective charging of thetransferred one or more software programs. For example, not alltransferred software programs may be charged but only those for which alicense is required and/or only those for which one or morecorresponding software programs are transferred in addition oralternatively. Thus, selective charging is an intelligent charging toolfor the synchronization service according to the invention.

The application profile can be created whenever a change of the one ormore software programs on the first device occurs. Examples for a changeare a transfer or installation of a new program on the first device orwhen at least one of the one or more software programs on the firstdevice is deleted, inactivated, or modified. Thus, triggering thecreation by a software program change event ensures that the applicationprofile can be updated for indicating the current software programs onthe first device.

The invention is furthermore embodied in a synchronization manager,devices, and a computer program, which are described in the following.

A synchronization manager is disclosed for synchronizing one or moresoftware programs from a first device to a second device. Thesynchronization manager is adapted to receive an application profileindicating one or more software programs on the first device andindicating one or more software program providing nodes from which saidone or more software programs are obtainable. The synchronizationmanager is further adapted to identify the one or more software programsand the one or more software program providing nodes according to theapplication profile. For example, the synchronization manager can beadapted to process the application profile comprising at least onesoftware program name indicating the one or more software programs andat least one node address indicating the one or more software programproviding nodes for identifying the one or more software programs andthe one or more software program providing nodes, respectively. Thesynchronization manager is further adapted to request the one or moresoftware program providing nodes to transfer the one or more softwareprograms to the second device.

According to a preferred embodiment, the synchronization manager can befurther adapted to process the application profile comprising at leastone version indicator indicating at least one version of the one or moresoftware programs for identifying the at least one version of the one ormore software programs.

For at least a part of the one or more software programs according tothe application profile one or more corresponding software programs canexist. In this case, the synchronization manager is preferably adaptedto process, e.g. to accept, install, or discard, the one or morecorresponding software programs that are transferred instead of or inaddition to said part of the one or more software programs according tothe application profile as a result of an analysis of said part of theone or more software programs according to the application profile andthe one or more corresponding software programs.

According to another preferred embodiment, the synchronization managercan be adapted to process the application profile comprising at leastone license indicator indicating that at least a part of the one or moresoftware programs requires a license. Accordingly, the synchronizationmanager can be further adapted to initiate a communication of a requestto a license authority for requesting an authorization of the transferto the second device of said part of the one or more software programsfor that the license is required from the one or more software programstorages where said part of one or more software programs requiring thelicense are obtainable from.

According to another preferred embodiment, the synchronization managercan be further adapted to perform an authentication. Accordingly, thesynchronization manager can be adapted to verify at least one identityof at least one of the first device, the second device, an user of thefirst device, an user of the second device, and at least one of the oneor more software program providing nodes before initiating or acceptingthe transferring of the one or more software programs to the seconddevice.

According to another preferred embodiment, the synchronization managercan be further adapted to process and/or provide data for a selectivecharging of the transferred one or more software programs.

The synchronization manager can be operated on an entity like a serverin a communications network, on the first device, or on the seconddevice. The synchronization manager may be a device that may be internalor attachable to one of the aforementioned entities. The synchronizationmanager may be embodied in a computer program comprising code adapted toperform the operations of the synchronization manager when operated onone of the aforementioned entities. The synchronization manager may evenbe distributed over several entities for a distributed operation of thesynchronization manager, e.g. for redundancy or parallel-processingreasons or customized solutions.

In the following, the first and second devices are described in moredetail.

The first device comprises at least a processing unit and an output unitand typically also one or more software program storage units where theone or more software programs that can be operated on the first devicecan be stored.

The processing unit of the first device can be adapted to create anapplication profile indicating the one or more software programs on thefirst device, e.g. by searching the one or more aforementioned softwarestorage units for software programs. The processing unit of the firstdevice can be further adapted to execute for the synchronization of theone or more software programs to a second device a transfer of theapplication profile to at least one of a synchronization manager, thesecond device, and an application profile storage node in acommunications network.

According to a preferred embodiment, the processing unit of the firstdevice can be adapted to create the application profile whenever achange of the one or more software programs on the first device occurs,e.g. whenever a software program on the first device is deleted,inactivated, or modified or a new software program is transferred toand/or installed on the first device.

According to another preferred embodiment, the processing unit of thefirst device can be adapted to generate a message comprising theapplication profile and to send the message via the output unit for thetransfer of the application profile. Alternatively or in addition, theprocessing unit of the first device can be adapted to store theapplication profile on a movable storage medium being removable from theoutput unit for the transfer of the application profile.

The first device can be further adapted to operate the synchronizationmanager. Accordingly, the processing unit of the first device can befurther adapted to identify the one or more software programs and theone or more software program providing nodes according to theapplication profile, the output unit can be adapted to send one or morerequest messages for requesting the one or more software programproviding nodes to transfer the one or more software programs to thesecond device.

The second device according to the invention comprises at least an inputunit, an output unit, and a processing unit. The input unit of thesecond device receives the one or more software programs that are to besynchronized from the first device to the second device. Preferably, thesecond device can operate the synchronization manager. Accordingly, theinput unit of the second device can be adapted to receive an applicationprofile indicating one or more software programs on the first deviceannex indicating one or more software program providing nodes from whichsaid one or more software programs are obtainable. Furthermore, theprocessing unit of the second device can be adapted to identify the oneor more software programs and the one or more software program providingnodes according to the application profile. The output unit of thesecond device can be adapted to send one or more request messages forrequesting the one or more software program providing nodes to transferthe one or more software programs and the input unit of the seconddevice can be adapted to receive the one or more software programs asalready stated above.

Furthermore, the input unit of the second device can be adapted toreceive the application profile from at least one of an applicationprofile storage node in a communication networks, the first device, anda movable storage medium.

The respective units of the first device or the second device can beadapted to perform further operations of the synchronization managerdescribed in the following in more detail:

The processing unit of the first or second device can be adapted toprocess the application profile comprising at least one software programname indicating the one or more software programs and at least one nodeaddress indicating the one or more software program providing nodes foridentifying the one or more software programs and the one or moresoftware program providing nodes.

The processing unit of the first or second device can be adapted toprocess the application profile comprising at least one versionindicator indicating at least one version of the one or more softwareprograms for identifying the at least one version of the one or moresoftware programs.

For at least a part of the one or more software programs according tothe application profile one or more corresponding software programs canexist. Accordingly, the processing unit of the first or second devicecan be adapted to process that one or more corresponding softwareprograms are transferred instead of or in addition to said part of theone or more software programs according to the application profile as aresult of an analysis of said part of the one or more software programsaccording to the application profile and the one or more correspondingsoftware programs.

The processing unit of the first or second device can be adapted toprocess the application profile comprising at least one licenseindicator indicating that at least a part of the one or more softwareprograms requires a license, to request an authorization by a licenseauthority of the transfer to the second device of said part of the oneor more software programs for that the license is required from the oneor more software program providing nodes from which said part of one ormore software programs requiring the license are obtainable.

The processing unit of the first or second device can be adapted toperform an authentication wherein the processing unit is adapted toverify at least one identity of at least one of the first device, thesecond device, the one or more software program providing nodes, and anuser of the first device and an user of the second device beforeaccepting the transferring of the one or more software programs to thesecond device.

The processing unit of the first or second device can be further adaptedto process and/or provide data for a selective charging of thetransferred one or more software programs.

The invention is furthermore embodied in a computer program comprisingcode adapted to operate the tasks of the synchronization manager asdescribed when operated by a processing unit of e.g. the first device,the second device, or a server in a communication network. Inparticular, the computer program may comprise code adapted to process anapplication profile indicating one or more software programs on thefirst device and indicating one or more software program providing nodesfrom which said one or more software programs are obtainable, toidentify the one or more software programs and the one or more softwareprogram providing nodes according to the application profile, and toinitiate a request of the one or more software program providing nodesto transfer the one or more software programs to the second device. Thecomputer program may comprise further code adapted for the execution offurther tasks of the respective devices, e.g. to perform the creation ofthe application profile or to perform communications or transfers viainput and/or output units.

In the following, detailed embodiments of the present invention shall bedescribed in order to give the skilled person a full and completeunderstanding. However, these embodiments are illustrative and notintended to be limiting.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows a flow chart of steps of the method;

FIG. 2 shows a message flow diagram according to a first embodiment ofthe invention;

FIG. 3 shows a message flow diagram according to a second embodiment ofthe invention;

FIG. 4 shows a message flow diagram according to a third embodiment ofthe invention;

FIG. 5 shows a message flow diagram according to a fourth embodiment ofthe invention;

FIG. 6 shows a message flow diagram according to a fifth embodiment ofthe invention;

FIG. 7 shows embodiment for a first device (a), a second device (b), anda synchronization manager (c) according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 shows a flow chart with steps of the method. In a first step 100,an application profile is created. The application profile indicatessoftware programs on a first device and software program providing nodesfrom which said software programs can be obtained. An example for anapplication profile is depicted in Tab. 1.

TABLE 1 Example for an application profile according to the inventionSoftware Address of Program Version Node License Name Indicator AddressLicense Authority NN11 1 URL11 — — NN22 2-5 URL22 — — NN33 3 URL33 — —NN44 2002 URL44 — — NN44 2004 URL44 LI44 URL4444 NN55 4.0 URL55 — — NN554.0 IP55 — —

Software programs on the first device can be indicated by softwareprogram names NN11-NN55. The software program names can be supplementedby version indicators like a number 1, 3 or 4.0, a number range 2-5, ora date like release 2002 or 2004 to further differentiate the softwareprograms on the first device. Other types of version indicators arepossible which can be used instead or in addition to the versionindicators shown in Tab. 1 for an alternative or more precise indicationof the software programs on the first devices, e.g. it may be useful toindicate the type of the first device being e.g. a mobile phone of aparticular type of a particular vendor for more precisely indicating thesoftware program. The software programs as indicated by the first twocolumns can be obtained from software providing nodes with nodeaddresses UPL11-URL55, IP55 given in the third column. According to thepresent example, node addresses URL11-55 denote Uniform Resource Locator(URL)-addresses and node address IP55 denotes an Internet Protocol(IP)-address like an IPv4 or IPv6 address. Other types of node addressesfor indication of software program providing nodes are possible, e.g. aMobile Station Integrated Services Digital Network (MSISDN) number forindicating a server from which software programs may be obtainable via amobile communication network like the Global System for MobileCommunication (GSM), General Packet Radio Service (GPRS), Code DivisionMultiple Access (CDMA), Universal Mobile Telecommunication System(UMTS), or future 4^(th) Generation (4G) communication systems.

The application profile may further comprise a licensing indicator forindicating whether a certain program requires a license, which isaccording to the present example the software program NN4 of version2004 for that a license is required. The license indicator may comprisethe license. The application profile may further comprise one or morelicense authority addresses for indicating the one or more licenseauthorities to be contacted for authorizing the transfer of the one ormore respective software programs to the second device. According to thepresent example, a license authority address URL4444 may be contacted toauthorize the transfer of the software program NN44 version 2004 fromthe software program providing node of node address URL44 for thetransfer to the second device.

Software program names, version indicators, node addresses, licenseindicators, and addresses of license authorities can be related in manyways. One way is in form of a table as depicted in Tab. 1 whereindividual software programs are listed row-by-row. One software programname can be listed in multiple rows as e.g. multiple versions may be onthe first device like for software program N44 or to indicate that thesame software program NN55 of the same version may be obtainable fromdifferent node addresses life URL55 and IP55. Other variations arepossible. An alternative representation of the application profile is aset of data strings. Each data string can comprise an individualsoftware program name with all its possible versions, node addresses,license identifiers, license authority addresses etc. The entries ofTab. 1 in an exemplary data string notation may be as <<NN11|1|URL11>>for software program NN1, <<NN22|2-5|URL22>> for software program NN22comprising version range 2-5, <<NN33|3|URL33>> for software programNN33, <<NN44|2002,2004|URL441|-,LI44|-,URL4444>> for software programNN44 comprising the two version alternatives 2002 and 2004 withand/without required license, and <<NN55|4.0|URL55,IP55>> for softwareprogram NN55 with redundant node addresses. Thus, a set of data stringsmay be a more compact representation of the application profile.

The application profile may indicate further requirements of the one ormore software programs. Examples for further requirements are certainunderlying software like an operation system or certain packages likeJava or Perl packages or libraries that are required for the operationof the one or more software programs. For indication and identificationpurpose, the application profile may further comprise one or more nameidentifiers and/or one or more addresses of nodes from which the furtherrequirements are obtainable, e.g. in form of separate columns in a tablelike Tab. 1 or separate entries in a data string.

Referring again to FIG. 1, wherein the method proceeds to step 200 toprovide the application profile to a synchronization manager. Thesynchronization manager subsequently identifies in step 300 the softwareprograms and the software program providing nodes from which thesoftware programs are obtainable. The synchronization manager identifiesthe software programs and the software program providing nodes accordingto the application profile, i.e. the synchronization manager can analyzethe provided application profile to identify the software programs andthe software program providing nodes as indicated by the applicationprofile, e.g. based on software program names and versions and nodeaddresses according to Tab. 1. The synchronization manager can then instep 400 request that the software programs as indicated by theapplication profile are to be transferred from the indicated softwareprogram providing nodes. Before the transfer of the software programsfrom the software program providing nodes to the second device isexecuted in step 500, the synchronization manager may ask a licenseauthority for an authorization of the transfer, e.g. for softwareprogram NN44 for that license entry LI44 indicates that software programNN44 version 2004 requires a license to be authorized by a licenseauthority according to license authority address URL4444. The license oran indication thereof maybe transferred to the second device forprocessing and/or storage, e.g. on a security module. Alternatively orin addition, the license or its indication may be transferred to,processed and/or stored at the synchronization manager and/or may bekept at the licensing authority. Authentication and/or selectivecharging may be further employed.

FIG. 2-6 depict message flow diagrams for illustrating implementationpossibilities of the invention. Identical devices, processes or messagesare indicated by identical references unless otherwise stated. Forreadability reasons and not meant to be restrictive, the followingdescription refers to multiple software programs stored on the firstdevice D100 which are obtainable for the transfer to the second deviceD200 from the two software program providing nodes SN100, SN200.

Referring now to FIG. 2, the first device D100 creates in process step100 the application profile indicating the software programs stored onthe first device D100 and the two software program providing nodesSN100, SN200 from which the indicated software programs are obtainable.The first device D100 communicates the application profile via message201 to the synchronization manager SM100, which is according to thepresent example remote from the first and second devices D100, D200,e.g. a server in a communication network. The message 201 can comprisefurthermore an identifier of the second device D200 like an address itindicate to the synchronization manager SM100 that the software programsare to be transferred to the second device D200. The synchronizationmanager SM100 identifies according to process step 300 the softwareprograms and the software program providing nodes SN100,SN200 and sendsrequest message 401,402 to request a transfer of the software programsfrom the respective software program providing nodes to the seconddevice D200. For indication of the second device D200, the requestmessages 401,402 may be accompanied by an identifier of the seconddevice D200 such that the requested software programs can be transferredfrom the respective software program providing nodes SN100,SN200 viamessages 501,502 to the second device D200. Alternatively to FIG. 2, themessages 501,502 comprising the software programs are not sent directlyfrom the respective software program providing nodes SN100,SN200 to thesecond device D200 but via the synchronization manager SM100, i.e. firstfrom the respective software program providing nodes SN100,SN200 to thesynchronization manager SM100 which then sends the software programs tothe second device D200. According to the latter alternative, noidentifier of the second device D200 has to be provided to the softwareprogram providing nodes SN100,SN200 which reduces the implementationcomplexity for the software program providing nodes SN100,SN200 as theydo not have to identify and to contact the second device D200 for thetransfer of the software programs. Instead, they can just send thesoftware programs to the synchronization manager SM100 which requestedthem. The synchronization manager can then communicate messagescomprising the software programs to the second device D200 for thetransfer in a kind of push mode. Alternatively, the second device D200may contact the synchronization manager SM100 for requesting thesynchronization manager SM100 to transfer the software programs to thesecond device D200 in a kind of pull mode. Combinations of theaforementioned alternatives are possible.

FIG. 3 depicts a flow diagram wherein the synchronization manager SM100and the first device D100 are collocated on the same device performingprocess steps 100 and 300. The step 200 of providing the applicationprofile to the synchronization manager SM100 is handled internally andexplains why message 201 is not present in FIG. 3. The method forsoftware program synchronization may be completed by messages401,402,501,502 as depicted or various alternatives as described inconjunction with FIG. 2 or the next Figures.

FIG. 4 illustrates two alternatives of providing the application profilecreated in step 100 on the first device D100 to the second device D200.The synchronization manager SM100 is now collocated with the seconddevice D200. According to a first alternative, the application profileis communicated via message 202 from the first device DI 00 to anapplication profile storage node ASN100, e.g. a server in acommunication network suitable for storing and accessing or providingdata like an application profile. Next, the second device D200 requeststhe application profile from the application profile storage node ASN100to be delivered to the second device D200. For this purpose, the seconddevice D200 can send a request message 203 for requesting theapplication profile. For identifying the application profile at theapplication profile storage node ASN100, the application profile may beassociated with an application profile identifier that can becommunicated from the second device D200 to the application profilestorage node ASN100 for identification of the application profile. Inaddition, the application profile storage node ASN100 may perform anauthentication based on a provided identifier by itself or with the helpof an authentication server providing e.g. a single-sign on service.After performing the necessary operations of identifying the applicationprofile and optionally performing an authentication, the applicationprofile storage node ASN100 communicates the application profile viamessage 204 to the synchronization manager SM100 collocated with thesecond device D200. The message 202 may comprise in addition anidentifier of the second device D200 and the application profile storagenode ASN100 may push the application profile to the synchronizationmanager SM100 collocated with the second device D200. Accordingly, arequest message 203 may be not needed.

At second alternative of providing the application profile from thefirst device D100 to the second device D200 is a direct communicationvia communication path 205. The first device D100 may store (1) theapplication profile on a movable storage medium like a SubscriberIdentity Module (SIM) or Wireless Identification Module (WIM) like card,a removable hardware token, or other type of memory cards. The movablestorage medium can be removed (2) from an output unit like a card writerof the first device D100 and transferred (3) to the second device D200where it can be inserted (4) into an input unit like a card reader andread (5) for providing the application profile to the synchronizationmanager SM100. Thus, the direct communication via communication path 205can comprise the steps denoted as (1)-(5) according to the exampledescribed before. Alternatively, the communication path 205 may berealized by a cable or a wireless connection like an Infrared (IR) orBluetooth connection for communicating the application profile from thefirst device D100 to the synchronization manager SM100 collocated withthe second device D200. Further proximity communication techniques, e.g.short-range radio or Radio Frequency Identification (RFID) likecommunication can be used to communicate the application profile fromthe first device D100 to the synchronization manager collocated with thesecond device D200.

The use of an application profile storage node ASN100 can be ofadvantage as the one or more users of the devices D100,D200 do not haveto care about any interconnection compatibilities between the firstdevice D100 and the second device D200 which is required for theprovision via communication path 205. On the other hand, the provisionof the application profile via communication path 205 may be very simpleand inexpensive if both devices are equipped with compatible interfacesin close vicinity. Especially, the transfer via a SIM or WIM-like cardcan be regarded as very secure and inexpensive.

After providing the application profile to the synchronization managerSM100, the message flow of FIG. 4 can continue by process step 300 andfollowing messages 401,402,501,502 as depicted or according to otheralternatives.

Referring now to FIG. 5 using a similar set-up as FIG. 4 regarding thecreation of the application profile via process step 100, the provisionof the application profile via communication path 205, theidentification of the software programs and software nodes SN100,SN200via process step 300, the request messages 401,402 and the message 501comprising the one or more software programs of the software programproviding node SN100. The software program providing node SN200 nowdetects in process step 600 that for one or more of the softwareprograms requested by request message 402 one or more correspondingsoftware programs exist, e.g. because the one or more correspondingsoftware programs are newer. A further reason may be that the one ormore corresponding programs are more suited to be operated on the seconddevice D200, e.g. because the first device D100 is a personal computerand the second device D200 is a smart phone for that a light version ofthe PC software program would run significantly faster. A furtherexample is when the first device D100 operates with a first operationsystem like Windows® and the second device D200 operates with a secondoperation system like Linux® or Symbian® for which a correspondingprogram must be transferred to be operable on the second device D200.For that reason, one or more identifiers identifying hardware andsoftware types or capabilities of the second device D200 may be providedto the software program providing nodes SN100,SN200 for selecting theone or more corresponding programs to be best operable on the seconddevice D200. The application profile may comprise these one or moreidentifiers, which may be e.g. entered by a user into the first deviceD100 for inserting or attaching to the application profile. Thesynchronization manager SM100 can subsequently provide these one or moreidentifiers derived from the application profile to the one or moresoftware program providing nodes SN100,SN200. Alternatively or inaddition, the synchronization manager SM100 or the one or more softwareproviding nodes SN100,SN200 may contact the second device D200 todetermine the particularities of the second device D200 for the analysisif a corresponding program may be better suited for the second deviceD200.

The software program providing node SN200 can send in addition oralternatively to the requested one or more software programs the one ormore corresponding programs via message 503. Alternatively, the softwareprogram providing node SN200 may request the second device D200 todetermine which one of the requested and/or corresponding softwareprograms should be transferred to the second device D200, e.g. byproviding a selection menu via communication 503 rq to the second deviceD200. The determination result can be communicated via communication 503rp to the software program providing node SN200, which can select thesoftware programs according to the determination result and communicatethese selected software programs via message 503 to the second deviceD200. The transfer of the software programs may be charged selectivelyaccording to the determination result. Other possibilities of aselective charging exist, e.g. based on the version of the transferredsoftware programs or if a license is required.

According to FIG. 6, the application profile comprises an indicationthat one or more of the software programs require a license. Thesynchronization manager SM100 detects this requirement within theidentification step 301 wherein the software programs and softwareproviding nodes are identified according to the application profile.Accordingly, a license request message 403 rq can be sent to a licenseauthority LA100 for requesting a license for said one or more softwareprograms requiring a license for the second device D200. The licenseauthority LA100 can respond with response message 403 rp for providing alicense or an indication thereof to the synchronization manager SM100.The synchronization manager SM100 can subsequently provide the licenseor an indication thereof to the software program providing node SN200indicating the authorization by the license authority LA100 for thetransfer of the one or more software programs requiring the license tothe second device D200. An authentication of the second device D200 or auser of the second device D200 may be performed before the transfer isexecuted. Alternatively or in addition, the license may be charged to anaccount of a user of the second device D200 and/or of the first deviceD100. The second device D200 and/or the synchronization manager SM100may be involved in providing or accepting charging related data forexecuting the charging by the license authority LA100 and/or thesoftware program providing node SN200. Alternatively to the messages 403rq,403 rp, the license authority LA100 may communicate the license or anindication thereof to the software program providing node SN200 whichsubsequently transfers the one or more software programs requiring thelicense to the second device D200. The synchronization of a softwareprogram requiring a license might result in a configuration where thesoftware program is operable on both the first device D100 and thesecond device D200. Alternatively, the software program requiring alicense may be no longer usable on the first device D100, but on thesecond device D200. The license for the software program on the firstdevice D100 may be blocked as a consequence of the request to thelicense authority LA100. A communication from the license authorityLA100 to the first device D100 may be necessary to block the license andthus the operation on the first device D100.

FIG. 7 a depicts an embodiment of a first device with input unit IU1,output unit OU1, processing unit PU1, and storage unit PU1 andconnections I11-I16 between the individual units and with the outside ofthe first device. Software programs can be stored on the storage unitPU1 and the processing unit PU1 can look up the stored software programsto create the application profile. Software programs on the first devicemay alternatively or in addition be stored externally, but may beaccessible via the input unit IU1 for operation by the processing unitPU1 of the first device. The application profile can be communicated viaoutput unit OU1 and interface I11 to the synchronization manager.

The synchronization manager can be collocated with the first device,e.g. in form of a computer program processed by the processing unit PU1or as a device integrated into or attached to the first device. Theprovision of the application profile may be executed processing unit PU1internally or via internal connections, e.g. via connection I15 when theapplication profile is stored on the storage unit SU1 and theidentification according to the application profile is performed by theprocessing unit PU2. Communication to the outside, e.g. for requestingsoftware program providing nodes to transfer the software programs tothe second device, may be accomplished via the output unit OU1 and theinterface I11.

FIG. 7 b depicts an embodiment of the second device with input unit IU2,output unit OU2, processing unit PU2, and storage unit SU2 andconnections I21-I26 between the individual units and with the outside ofthe second device. The reception of the software programs can beaccomplished by the input unit IU2 via interface I22. The receivedsoftware programs can be stored in the storage unit SU2 and operated bythe processing unit PU2 on the second device.

The synchronization manager may be collocated with the second device,e.g. in form of a computer program processed by the processing unit PU2or as a device integrated into or attached to the second device. Furthercommunication from the outside, e.g. for the provision of theapplication profile, can be performed via interface 122 and input unitIU2. Communication to the outside, e.g. for requesting the softwareproviding nodes to transfer the software programs, may be accomplishedvia output unit OU2 and interface 121.

FIG. 7 c depicts an embodiment of a synchronization manager comprisingan input unit IO3, an output unit OU3, and a processing unit PU3, and astorage unit SU3 and interconnections I31-I36. The synchronizationmanager can receive the application profile via input unit IU3 andinterface I31 and process the application profile accordingly at theprocessing unit PU3. The application profile may be at least temporarilystored at the storage unit SU3. The processing unit PU3 can be furtheradapted to communicate via input unit IU3 and output unit OU3 with therespective entities like the software program nodes, a license authorityand others e.g. described in conjunction with FIG. 2-6. Thesynchronization manager can be a remote device according to theembodiment described in conjunction with FIG. 2 or collocated on thefirst device or the second device as described in conjunction with FIG.3 and FIGS. 4-6. In case of collocation, corresponding units of thefirst device and the synchronization manager, i.e. processing unit PU1and processing unit PU3, input unit IU1 and input unit IU3, output unitOU1 and output unit OU3, storage unit SU1 and storage unit SU3, may bemerged at least in part. The corresponding may apply when collocatingthe synchronization manager and the second device.

A unit of a device may further comprise multiple units. For example, theinput unit of the second device may comprise a card reader, a Bluetoothreceiver, and a UMTS receiver. The card reader and the Bluetoothreceiver may be used to read the application profile from a card or toreceive the application profile from the first device, respectively, andthe UMTS receiver may be employed for receiving the one or more softwareprograms.

Many variations and implementations are possible. Messages can compriseappropriate identifiers for identifying and/or authenticating involvedentities like the first device, the second device, an user of the firstdevice, an user of the second device, the synchronization manager, theone or more software program providing nodes, and the license authority.In this respect, the term message is to be understood in a broad sensecomprising any kind of communications for transferring the respectiveinformation like the application profile, identifiers, indicators,license etc. or the one or more software programs from one entity toanother. Messages may be communicated via fixed communication orwireless communication or via movable storage media.

Furthermore, the method is suited to synchronize one or more softwareprograms from the second device to the first device based on a secondapplication profile indicating the one or mores software programs on thesecond device and the one or more software program providing nodes fromwhich these one or more software programs can be obtained with acorresponding processing and communication associated with the secondapplication profile by the same or a further synchronization manager.The method may be also well suited to synchronize one or more softwareprograms from the first device to multiple second devices using one ormore application profiles and one or more synchronization managers. Anykind of device capable of operating software programs and performingcommunications can be used to carry out the respective steps of themethod. Ensamples for the first device and the second device comprisepersonal computers, laptop computers, personal digital assistants, smartphones, mobile phones, and vehicles like cars.

The method can be further extended by synchronizing user data and/ordevice settings from the first device to the second device, e.g. bySyncML protocol and WAP UAP, respectively. The application profile maybe adapted to comprise such information that triggers thesynchronization of user data and/or device settings from the firstdevice to the second device.

The invention claimed is:
 1. Method for synchronizing one or moresoftware programs from a first device to a second device, comprising thesteps of: creating an application profile comprising a license indicatorfor indicating and identifying a software program requiring a license,the application profile indicating the software program on the firstdevice and on a software program node; providing the application profileto a synchronization manager; the synchronization manager identifyingboth the software program and the software program node according to theapplication profile; responsive to the identification of the softwareprogram requiring a license, the synchronization manager: requestingfrom a licensing authority an authorization of a transfer from thesoftware program node to the second device; requesting the softwareprogram node to transfer the software program requiring a license to thesecond device; authenticating a user of the second device as being thesame as a user of the first device; and transferring the softwareprogram requiring a license to the second device in response to the userof the second device being authenticated.
 2. The method according toclaim 1, wherein the application profile comprises at least one softwareprogram name for indicating and identifying one or more softwareprograms, at least one node address for indicating and identifying oneor more software program nodes.
 3. The method according to claim 2,wherein the application profile further comprises a version indicatorfor identifying and indicating at least one version of the softwareprogram.
 4. The method according to claim 3, wherein a correspondingsoftware program is transferred instead of or in addition to thesoftware program according to the application profile as a result ofanalysis of the corresponding software program, the correspondingprogram being better suited for particularities of the second devicethan the software program.
 5. The method according to claim 2, whereinthe application profile comprises one or more license authorityaddresses for indicating one or more license authorities to be contactedfor authorizing the transfer of the one or more respective softwareprograms to the second device.
 6. The method according to claim 2further comprising the step of a selective charging for the transferredone or more software programs.
 7. The method according to claim 2,wherein the step of creating the application profile is performedwhenever a change of the one or more software programs on the firstdevice occurs.
 8. A synchronization manager for synchronizing one ormore software programs from a first device to a second device, whereinthe synchronization manager comprises: a processor; and a memorycontaining instructions that, when executed by the processor, cause thesynchronization manager to: receive an application profile comprising alicense indicator for indicating and identifying a software programrequiring a license, the application profile indicating the softwareprogram on the first device and on a software program node; identifyboth the software program and the software program node according to theapplication profile; responsive to the identification of the softwareprogram requiring a license: request from a licensing authority anauthorization of a transfer from the software program node to the seconddevice; and request the software program node to transfer the softwareprogram requiring a license to the second device; authenticate a user ofthe second device as being the same as a user of the first device; andtransfer the software program requiring a license to the second devicein response to the user of the second device being authenticated.
 9. Thesynchronization manager according to claim 8, wherein thesynchronization manager is adapted to process the application profile,which comprises at least one software program name indicating one of theone or more software programs and at least one node address indicatingone of the one or more software program nodes for identifying the one ormore software programs and the one or more software program nodes. 10.The synchronization manager according to claim 8, wherein thesynchronization manager is further adapted to process the applicationprofile comprising at least one version indicator indicating at leastone version of the one or more software programs for identifying the atleast one version of the one or more software programs.
 11. Thesynchronization manager according to claim 8, wherein for at least apart of the one or more software programs according to the applicationprofile one or more corresponding software programs exist and thesynchronization manager is adapted to process the one or morecorresponding software programs that are transferred instead of or inaddition to said part of the one or more software programs according tothe application profile as a result of an analysis of said part of theone or more software programs according to the application profile andthe one or more corresponding software programs, the one or morecorresponding programs being better suited for particularities of thesecond device than the one or more software programs.
 12. Thesynchronization manager according to claim 8, wherein the applicationprofile comprises one or more license authority addresses for indicatingone or more license authorities to be contacted for authorizing thetransfer of the one or more respective software programs to the seconddevice.
 13. The synchronization manager according to claim 8, whereinthe instructions, when executed by the processor, further cause thesynchronization manager to process and provide data for a selectivecharging of the transferred one or more software programs.
 14. Thesynchronization manager according to claim 8, wherein thesynchronization manager is operated on a server in a communicationsnetwork.
 15. A first device comprising a processor and an output unit,wherein the processor is adapted to create an application profileindicating one or more software programs on the first device andindicating one or more software program nodes from which said one ormore software programs are obtainable, the application profilecomprising at least one license indicator for indicating and identifyingat least a part of the one or more software programs requiring alicense, and to execute, for synchronization of the one or more softwareprograms to a second device in dependence on the user of the seconddevice being authenticated, a transfer of the application profile to atleast one of a synchronization manager, the second device, and anapplication profile storage node in a communications network.
 16. Thefirst device according to claim 15, wherein the application profilecomprises one or more license authority addresses to be contacted forauthorizing the transfer of the one or more respective software programsto the second device.
 17. The first device according to claim 15,wherein the processor is adapted to create the application profilewhenever a change of the one or more software programs on the firstdevice occurs.
 18. The first device according to claim 15, wherein forthe transfer of the application profile the processor is adapted togenerate a message comprising the application profile and to send themessage via the output unit for the transfer of the application profile,and the processor is adapted to store the application profile on anon-transitory movable storage medium being removable from the outputunit for the transfer of the application profile.
 19. The first deviceaccording to claim 16, wherein the first device is further adapted tooperate the synchronization manager wherein the synchronization managercomprises instructions adapted to perform the following operations whenexecuted on the first device: receive an application profile comprisinga license indicator for indicating and identifying a software programrequiring a license, the application profile indicating the softwareprogram on the first device and on a software program node; identifyboth the software program and the software program node according to theapplication profile; responsive to the identification: request from alicensing authority an authorization of a transfer from the softwareprogram node to the second device, the software program requiring alicense; request the software program node to transfer the softwareprogram requiring a license to the second device; and transfer thesoftware program requiring a license to the second device.
 20. A seconddevice comprising an input unit and an output unit, wherein the seconddevice is adapted to operate a synchronization manager, wherein thesynchronization manager includes: a processor; and a memory containinginstructions that, when executed by the processor, cause thesynchronization manager to: receive an application profile comprising alicense indicator for indicating and identifying a software programrequiring a license, the application profile indicating the softwareprogram on a first device and on a software program node; provide theapplication profile to a synchronization manager; identify both thesoftware program and the software program node according to theapplication profile; authenticate a user of the second device as beingthe same as a user of the first device; and responsive to theidentification of the software program: request from a licensingauthority an authorization of a transfer from the software program nodeto the second device; and request the software program node to transferthe software program requiring a license to the second device; andresponsive to the user of the second device being authenticated:transfer the software program requiring a license to the second device,wherein the second device is adapted to receive the one or more softwareprograms via the input unit.
 21. The second device according to claim20, wherein the synchronization manager is adapted to receive theapplication profile via the input unit from at least one of anapplication profile storage node in a communications network, the firstdevice, and a non-transitory movable storage medium.
 22. The methodaccording to claim 1, wherein the first and second devices use differentoperating systems.